﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

namespace HelpDesk
{
    public partial class DescripcionTicket : System.Web.UI.Page
    {
        string id;
        QueryBuilder objconsulta = new QueryBuilder();
        DataTable dtConsulta = new DataTable();
        bool EsValido = false;

        protected void Page_Load(object sender, EventArgs e)
        {
            id = Request.QueryString["TID"];
            dtConsulta = objconsulta.EjecutarQuery("SELECT ID_TICKET FROM TICKET");
            for (int i = 0; i < dtConsulta.Rows.Count; i++)
            {
                if (string.Compare(id, dtConsulta.Rows[i].ItemArray[0].ToString()) == 0)
                {
                    EsValido = true;
                    break;
                }
            }
            if (!EsValido)
            {
                Response.Write("<script language=javascript>alert('Error: Parametros Invalidos');</script>");
                Response.Redirect("Principal.aspx");
            }
            else
            {
                GenerarDatos();

                DataTable asignada = objconsulta.EjecutarQuery("select id_ticket from ticket where status = 'ASG' and id_ticket = " + id);
                if (asignada.Rows.Count > 0)
                {
                    btn_asignacion.Visible = false;
                    lblMensaje.Visible = true;
                    lblMensaje.Text = "Ticket ya asignado";
                }
                else
                {
                    btn_asignacion.Text = "Asignar Ticket";
                    lblMensaje.Visible = false;
                }
            }

        }

        private void GenerarDatos()
        {

            string consulta = "SELECT TICKET.ID_TICKET, TICKET.TICKET_DESC, to_char(TICKET.FECHA_INICIO) AS FECHA, INFRAESTRUCTURA.DESCRIPCION AS INFRAESTRUCTURA, " +
                         "PROBLEMA.DESCRIPCION AS PROBLEMA, AREA_TRABAJO.DESCRIPCION AS AREA, USUARIO.NOMBRES AS NOMBRESU, USUARIO.APELLIDOS AS APELLIDOSU, " +
                         "ESTADO_TICKET.DESCRIPCION AS ESTADO, USUARIO_1.NOMBRES AS NOMBRESA, USUARIO_1.APELLIDOS AS NOMBRESA " +
                         "FROM TICKET INNER JOIN " +
                         "INFRAESTRUCTURA ON TICKET.INFRAESTRUCTURA = INFRAESTRUCTURA.ID_INFRAESTRUCTURA INNER JOIN " +
                         "PROBLEMA ON TICKET.PROBLEMA = PROBLEMA.ID_PROBLEMA INNER JOIN " +
                         "AREA_TRABAJO ON TICKET.AREA_ORIGEN = AREA_TRABAJO.ID_AREA INNER JOIN " +
                         "USUARIO ON TICKET.USUARIO_TICKET = USUARIO.ID_USUARIO INNER JOIN " +
                         "ESTADO_TICKET ON TICKET.STATUS = ESTADO_TICKET.ESTADO INNER JOIN " +
                         "USUARIO USUARIO_1 ON TICKET.USUARIO_ADMIN = USUARIO_1.ID_USUARIO " +
                         "WHERE (TICKET.ID_TICKET =" + id + ")";
            dtConsulta = objconsulta.EjecutarQuery(consulta);

            lblTIcket.Text = dtConsulta.Rows[0].ItemArray[0].ToString();
            txtDescripcion.Text = dtConsulta.Rows[0].ItemArray[1].ToString();
            lblFecha.Text = dtConsulta.Rows[0].ItemArray[2].ToString();
            lblInfraestructura.Text = dtConsulta.Rows[0].ItemArray[3].ToString();
            lblProblema.Text = dtConsulta.Rows[0].ItemArray[4].ToString();
            lblArea.Text = dtConsulta.Rows[0].ItemArray[5].ToString();
            lblSolicitado.Text = dtConsulta.Rows[0].ItemArray[6].ToString() + " " + dtConsulta.Rows[0].ItemArray[7].ToString();
            lblEstatus.Text = dtConsulta.Rows[0].ItemArray[8].ToString();
            lblCreado.Text = dtConsulta.Rows[0].ItemArray[9].ToString() + " " + dtConsulta.Rows[0].ItemArray[10].ToString();

        }
        private void InsertarComentario()
        {
            QueryBuilder objInserta = new QueryBuilder();
            if (txtComentarios.Text != "")
            {
                string consultaInserta = "INSERT INTO COMENTARIOS (ID_TICKET,FECHA_COMENTARIO,COMENTARIO,USUARIO_COMENTA) VALUES (" + id + ",sysdate,'"+ txtComentarios.Text + "', '" + Session["Usuario"].ToString() + "')";
                objInserta.EjecutarNoQuery(consultaInserta);
                Response.Write("<script language=javascript>alert('Comentario Agregado Exitosamente');</script>");
            }
            else
            {
                Response.Write("<script language=javascript>alert('Hubo un problema al comentar la incidencia');</script>");
            }
            txtComentarios.Text = "";
            Response.Redirect("DescripcionTicket.aspx?TID=" + id);
            
        }

        protected void btnComentario_Click(object sender, EventArgs e)
        {
            InsertarComentario();
        }

        protected void btn_asignacion_Click(object sender, EventArgs e)
        {
            Response.Redirect("AsignacionIncidencia.aspx?TID=" + id);
        }
       
    }
}
